package org.caixy.project.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.caixy.project.admin.dto.req.UserLoginReqDTO;
import org.caixy.project.admin.dto.resp.UserRespDTO;
import org.caixy.project.admin.dao.entity.UserDO;
import org.caixy.project.admin.dto.req.UserUpdateReqDTO;
import org.caixy.project.admin.dto.resp.UserLoginRespDTO;

public interface UserService extends IService<UserDO> {
    /**
     * 根据用户名查询用户信息
     * @param username 用户名
     * @return 用户返回实体
     */
   UserRespDTO getUserByUserName(String username);

    /**
     *判断用户名是否存在
     * @param username 用户名
     * @return 存在为True 不存在为False
     */
    Boolean hasUserName(String username);

    /**
     * 用户注册
     * @param requestParam 注册请求参数
     */
    void Register(UserUpdateReqDTO requestParam);

    /**
     * 用户信息更新
     * @param requestParam 更新请求参数
     */
    void Update(UserUpdateReqDTO requestParam);
    /**
     * 登录
     * @param requestParam 登录请求参数
     */
    UserLoginRespDTO Login(UserLoginReqDTO requestParam);

    /**
     * 注销
     * @param username 注销用户名
     */
    void Logout(String username);
}
